﻿using Cofe.Core.Property;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cofe.Core.Entry
{

    public interface IListActionProvider : IPropertyProvider
    {

    }

    public interface ISearchActionProvider : IPropertyProvider
    {

    }

    public interface IAutoEntryListPropertyProvider : IPropertyProvider
    {

    }

    public interface IEntryLinkPropertyProvider : IPropertyProvider
    {

    }

    public interface IEntryTypePropertyProvider : IPropertyProvider
    {

    }

    public interface ICustomEntryListPropertyProvider : IPropertyProvider
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="name">Name of the entry link, may not be equal to the name specified in entryParsePath.</param>
        /// <param name="entryParsePath"></param>
        /// <param name="entryPP"></param>
        /// <returns></returns>
        IPropertyProvider add(string name, string entryParsePath, IPropertyHost entryPH);

        void remove(string name);

        int getPosition(string name);
        bool setPosition(string name, int position);        
        void setName(string oldName, string newName);
        string findParseName(string name);
        string findName(string parseName);
    }

    public interface IRootEntryListPropertyProvider : ICustomEntryListPropertyProvider
    {

    }
}
